package org.dromara.platform.domain.bo;

import org.dromara.platform.domain.TMiniProgramAuthentication;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 小程序认证信息业务对象 t_mini_program_authentication
 *
 * @author Lion Li
 * @date 2025-06-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TMiniProgramAuthentication.class, reverseConvertGenerate = false)
public class TMiniProgramAuthenticationBo extends BaseEntity {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 小程序基础id
     */
    private Long baseId;

    /**
     * 认证主体类型：1.企业；12.个体工商户；15.个人
     */
    private Long customerType;

    /**
     * 支付方式 1：消耗服务商预购包 2：小程序开发者自行支付
     */
    private Long payType;

    /**
     * 主体资质其他证明材料
     */
    private String qualificationOther;

    /**
     * 小程序账号名称
     */
    private String accountName;

    /**
     * 小程序账号名称命名类型 1：基于自选词汇命名 2：基于商标命名
     */
    private Long accountNameType;

    /**
     * 名称命中关键词-补充材料
     */
    private String accountSupplemental;

    /**
     * 认证类型为个人类型时可以选择要认证的身份
     */
    private String authIdentification;

    /**
     * 身份证明材料
     */
    private String authIdentMaterial;

    /**
     * 第三方联系电话
     */
    private String thirdPartyPhone;

    /**
     * appid
     */
    private String serviceAppid;

    /**
     * 认证联系人姓名
     */
    private String name;

    /**
     * 认证联系人邮箱
     */
    private String email;

    /**
     * 认证联系人手机号
     */
    private String mobile;

    /**
     * 发票类型 1: 不开发票 2: 电子发票 4: 增值税专票（数电类型）
     */
    private Long invoiceType;

    /**
     * 纳税识别号
     */
    private String taxpayerId;

    /**
     * 企业电话
     */
    private String enterprisePhone;

    /**
     * 企业注册地址

     */
    private String enterpriseAddress;

    /**
     * 企业开户银行
     */
    private String bankName;

    /**
     * 企业银行账号（选填）
     */
    private String bankAccount;

    /**
     * 发票备注
     */
    private String descRemark;

    /**
     * 备注
     */
    private String remark;


}
